<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>CMSIS-SVD Schema File Ver. 1.0</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->

<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="proglogo"><img alt="CMSIS Logo" src="CMSIS_Logo_Final.png"></td>
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-SVD
   &#160;<span id="projectnumber">Version 1.10</span>
   </div>
   <div id="projectbrief">CMSIS System View Description</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <li><a href="../../General/html/index.html"><span>CMSIS</span></a></li>
      <li><a href="../../Core/html/index.html"><span>CORE</span></a></li>
      <li><a href="../../DSP/html/index.html"><span>DSP</span></a></li>
      <li><a href="../../RTOS/html/index.html"><span>RTOS API</span></a></li>
      <li class="current"><a href="../../SVD/html/index.html"><span>SVD</span></a></li>
    </ul>
</div>
<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript" src="dynsections.js"></script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group__schema__gr.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">CMSIS-SVD Schema File Ver. 1.0</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!-- 
  @date: 07.12.2011
  @note    Copyright (C) 2011 ARM Limited. All rights reserved.
  @par
   ARM Limited (ARM) is supplying this software for use with Cortex-M
   processor based microcontroller, but can be equally used for other
   suitable  processor architectures. This file can be freely distributed.
   Modifications to this file shall be clearly marked.

  @par
   THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
   OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
   ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
   CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 --&gt;

&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.0"&gt;
  
  &lt;xs:simpleType name="registerNameType"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="((%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="dimIndexType"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="scaledNonNegativeInteger"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="enumeratedValueDataType"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="[+]?(0x|0X|#)?[0-9a-fxA-FX]+"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="accessType"&gt;
    &lt;xs:restriction base="xs:token"&gt;
      &lt;xs:enumeration value="read-only"/&gt;
      &lt;xs:enumeration value="write-only"/&gt;
      &lt;xs:enumeration value="read-write"/&gt;
      &lt;xs:enumeration value="writeOnce"/&gt;
      &lt;xs:enumeration value="read-writeOnce"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="modifiedWriteValuesType"&gt;
    &lt;xs:restriction base="xs:token"&gt;
      &lt;xs:enumeration value="oneToClear"/&gt;
      &lt;xs:enumeration value="oneToSet"/&gt;
      &lt;xs:enumeration value="oneToToggle"/&gt;
      &lt;xs:enumeration value="zeroToClear"/&gt;
      &lt;xs:enumeration value="zeroToSet"/&gt;
      &lt;xs:enumeration value="zeroToToggle"/&gt;
      &lt;xs:enumeration value="clear"/&gt;
      &lt;xs:enumeration value="set"/&gt;
      &lt;xs:enumeration value="modify"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="readActionType"&gt;
    &lt;xs:restriction base="xs:token"&gt;
      &lt;xs:enumeration value="clear"/&gt;
      &lt;xs:enumeration value="set"/&gt;
      &lt;xs:enumeration value="modify"/&gt;
      &lt;xs:enumeration value="modifyExternal"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="enumUsageType"&gt;
    &lt;xs:restriction base="xs:token"&gt;
      &lt;xs:enumeration value="read"/&gt;
      &lt;xs:enumeration value="write"/&gt;
      &lt;xs:enumeration value="read-write"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:simpleType name="bitRangeType"&gt;
    &lt;xs:restriction base="xs:token"&gt;
      &lt;xs:pattern value="\[([0-3])?[0-9]:([0-3])?[0-9]\]"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;xs:complexType name="writeConstraintType"&gt;
    &lt;xs:choice&gt;
      &lt;xs:element name="writeAsRead" type="xs:boolean"/&gt;
      &lt;xs:element name="useEnumeratedValues" type="xs:boolean"/&gt;
      &lt;xs:element name="range"&gt;
        &lt;xs:complexType&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element name="minimum" type="scaledNonNegativeInteger"/&gt;
            &lt;xs:element name="maximum" type="scaledNonNegativeInteger"/&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
    &lt;/xs:choice&gt;
  &lt;/xs:complexType&gt;

  &lt;xs:complexType name="addressBlockType"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="offset" type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="size" type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="usage"&gt;
        &lt;xs:simpleType&gt;
          &lt;xs:restriction base="xs:token"&gt;
            &lt;xs:enumeration value="registers"/&gt;
            &lt;xs:enumeration value="buffer"/&gt;
            &lt;xs:enumeration value="reserved"/&gt;
          &lt;/xs:restriction&gt;
        &lt;/xs:simpleType&gt;
      &lt;/xs:element&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;

  &lt;xs:complexType name="interruptType"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="name" type="xs:string"/&gt;
      &lt;xs:element name="value" type="xs:integer"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;

  &lt;xs:group name="registerPropertiesGroup"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
      &lt;xs:element name="access" type="accessType" minOccurs="0"/&gt;
      &lt;xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
      &lt;xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:group&gt;

  &lt;xs:group name="bitRangeLsbMsbStyle"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="lsb"  type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="msb"  type="scaledNonNegativeInteger"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:group&gt;

  &lt;xs:group name="bitRangeOffsetWidthStyle"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="bitOffset" type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/&gt;   
    &lt;/xs:sequence&gt; 
  &lt;/xs:group&gt;

  &lt;xs:group name="dimElementGroup"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="dim" type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="dimIncrement" type="scaledNonNegativeInteger"/&gt;
      &lt;xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:group&gt;

  &lt;xs:element name="device" nillable="true"&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="name" type="xs:string"/&gt;
        &lt;xs:element name="version" type="xs:string"/&gt;
        &lt;xs:element name="description" type="xs:string"/&gt;
        &lt;xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/&gt;
        &lt;xs:element name="width" type="scaledNonNegativeInteger"/&gt;
        &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
        &lt;xs:element name="peripherals"&gt;
          &lt;xs:complexType&gt;
            &lt;xs:sequence&gt;
              &lt;xs:element name="peripheral" minOccurs="1" maxOccurs="unbounded"&gt;
                &lt;xs:complexType&gt;
                  &lt;xs:sequence&gt;
                    &lt;xs:element name="name" type="xs:Name"/&gt;
                    &lt;xs:element name="version" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="description" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="groupName" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="prependToName" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="appendToName" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="disableCondition" type="xs:string" minOccurs="0"/&gt;
                    &lt;xs:element name="baseAddress" type="scaledNonNegativeInteger"/&gt;
                    &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
                    &lt;xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/&gt;
                    &lt;xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/&gt;
                    &lt;xs:element name="registers" minOccurs="0" maxOccurs="1"&gt;
                      &lt;xs:complexType&gt;
                        &lt;xs:sequence&gt;
                          &lt;xs:element name="register" minOccurs="1" maxOccurs="unbounded"&gt;
                            &lt;xs:complexType&gt;
                              &lt;xs:sequence&gt;
                                &lt;xs:group ref="dimElementGroup" minOccurs="0"/&gt;
                                &lt;xs:element name="name" type="registerNameType"/&gt; &lt;!-- was xs:Name --&gt;
                                &lt;xs:element name="displayName" type="xs:string" minOccurs="0"/&gt;
                                &lt;xs:element name="description" type="xs:string" minOccurs="0"/&gt;
                                &lt;xs:element name="alternateGroup" type="xs:Name" minOccurs="0"/&gt;
                                &lt;xs:element name="addressOffset" type="scaledNonNegativeInteger"/&gt;
                                &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
                                &lt;xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/&gt;
                                &lt;xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/&gt;
                                &lt;xs:element name="readAction" type="readActionType" minOccurs="0"/&gt;
                                &lt;xs:element name="fields" minOccurs="0" maxOccurs="1"&gt;
                                  &lt;xs:complexType&gt;
                                    &lt;xs:sequence&gt;
                                      &lt;xs:element name="field" minOccurs="1" maxOccurs="unbounded"&gt;
                                      &lt;xs:complexType&gt;
                                        &lt;xs:sequence&gt;
                                          &lt;xs:element name="name" type="xs:string"/&gt;
                                          &lt;xs:element name="description" type="xs:string" minOccurs="0"/&gt;
                                          &lt;xs:choice&gt;
                                            &lt;xs:group ref="bitRangeLsbMsbStyle" minOccurs="0"/&gt;
                                            &lt;xs:group ref="bitRangeOffsetWidthStyle" minOccurs="0"/&gt;
                                            &lt;xs:element name="bitRange" type="bitRangeType" minOccurs="0"/&gt;
                                          &lt;/xs:choice&gt;
                                          &lt;xs:element name="access" type="accessType" minOccurs="0"/&gt;
                                          &lt;xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/&gt;
                                          &lt;xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/&gt;
                                          &lt;xs:element name="readAction" type="readActionType" minOccurs="0"/&gt;
                                          &lt;xs:element name="enumeratedValues" minOccurs="0" maxOccurs="2"&gt;
                                            &lt;xs:complexType&gt;
                                              &lt;xs:sequence&gt;
                                                &lt;xs:element name="name" type="xs:Name" minOccurs="0"/&gt;
                                                &lt;xs:element name="usage" type="enumUsageType" minOccurs="0"/&gt;
                                                &lt;xs:element name="enumeratedValue" minOccurs="1" maxOccurs="unbounded"&gt;
                                                  &lt;xs:complexType&gt;
                                                    &lt;xs:sequence&gt;
                                                      &lt;xs:element name="name" type="xs:string"/&gt;
                                                      &lt;xs:element name="description" type="xs:string" minOccurs="0"/&gt;
                                                      &lt;xs:choice&gt;
                                                        &lt;xs:element name="value" type="enumeratedValueDataType"/&gt;
                                                        &lt;xs:element name="isDefault" type="xs:boolean"/&gt;
                                                      &lt;/xs:choice&gt;
                                                    &lt;/xs:sequence&gt;
                                                  &lt;/xs:complexType&gt;
                                                &lt;/xs:element&gt;
                                              &lt;/xs:sequence&gt;
                                              &lt;xs:attribute name="derivedFrom" type="xs:Name" use="optional"/&gt;
                                            &lt;/xs:complexType&gt;
                                          &lt;/xs:element&gt;
                                        &lt;/xs:sequence&gt;
                                        &lt;xs:attribute name="derivedFrom" type="xs:Name" use="optional"/&gt;
                                      &lt;/xs:complexType&gt;
                                    &lt;/xs:element&gt;
                                    &lt;/xs:sequence&gt;
                                  &lt;/xs:complexType&gt;
                                &lt;/xs:element&gt;
                              &lt;/xs:sequence&gt;
                              &lt;xs:attribute name="derivedFrom" type="xs:Name" use="optional"/&gt;
                            &lt;/xs:complexType&gt;
                          &lt;/xs:element&gt;
                        &lt;/xs:sequence&gt;
                      &lt;/xs:complexType&gt;
                    &lt;/xs:element&gt;
                  &lt;/xs:sequence&gt;
                  &lt;xs:attribute name="derivedFrom" type="xs:Name" use="optional"/&gt;
                &lt;/xs:complexType&gt;
              &lt;/xs:element&gt;
            &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
        &lt;/xs:element&gt;
        &lt;xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1"&gt;
          &lt;xs:complexType&gt;
            &lt;xs:sequence&gt;
              &lt;xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"&gt;
              &lt;/xs:any&gt;
            &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
        &lt;/xs:element&gt;
      &lt;/xs:sequence&gt;
      &lt;xs:attribute name="schemaVersion" type="xs:decimal" use="required" fixed="1.0"/&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre></div> </div>
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Wed Mar 28 2012 15:38:11 for CMSIS-SVD by ARM Ltd. All rights reserved.
    <!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
    -->
    </li>
   </ul>
 </div>


</body>
</html>
